#ifndef __MODULE_CONFIG_H__
#define __MODULE_CONFIG_H__

#include "bsp.h"

#ifdef __cplusplus
 extern "C" {
#endif

// #define MODULE_INCLUDE_SUBG		
// #define MODULE_INCLUDE_BMS		
// #define MODULE_INCLUDE_MOTOR	
// #define MODULE_INCLUDE_LED		
// #define MODULE_INCLUDE_SCREEN	
// #define MODULE_INCLUDE_EMERGENCY
// #define MODULE_INCLUDE_KEY		
// #define MODULE_INCLUDE_ALARM	
// #define MODULE_INCLUDE_ERRCODE	
// #define MODULE_INCLUDE_LIFTUP	
// #define MODULE_INCLUDE_BUMPER	
#define MODULE_INCLUDE_FACTORY	
// #define MODULE_INCLUDE_ACU		
#define MODULE_INCLUDE_LOG		
// #define MODULE_INCLUDE_SAMPLE	
#define MODULE_INCLUDE_TIMESTAMP
#define MODULE_INCLUDE_COMMUNICATE
#define MODULE_INCLUDE_POWERCTRL
// #define MODULE_INCLUDE_BOARDID	
#define MODULE_INCLUDE_FLASH	
#define MODULE_INCLUDE_OLED		
#define MODULE_INCLUDE_SECRET
#define MODULE_INCLUDE_USER_CRC
// #define MODULE_INCLUDE_SENSOR

#if defined (MODULE_INCLUDE_SUBG)
#include "SubGStack.h"
#include "SubGUser.h"
#include "ctrlMapStation.h"
#endif

#if defined (MODULE_INCLUDE_LIFTUP)
#include "liftUp.h"
#endif

#if defined (MODULE_INCLUDE_EMERGENCY)
#include "emergencyProc.h"
#endif

#if defined (MODULE_INCLUDE_LED) || defined (MODULE_INCLUDE_SCREEN)
#include "display.h"
#endif
#if defined (MODULE_INCLUDE_LED)
#include "led_light.h"
#endif
#if defined (MODULE_INCLUDE_SCREEN)
#include "screen_user.h"
#endif

#if defined (MODULE_INCLUDE_LOG)
#include "amLog.h"
#endif

#if defined(MODULE_INCLUDE_BMS)
#include "bms_gpio.h"
#include "bms_base.h"
#include "chargeTask.h"
#include "driver_bq76942.h"
#endif

#if defined (MODULE_INCLUDE_MOTOR)
#include "mowerMotorInterface.h"
#include "ImuCfg.h"
#endif

#if defined (MODULE_INCLUDE_COMMUNICATE)
#include "commInterface.h"
#include "comm_data_pack.h"
#endif

#if defined (MODULE_INCLUDE_TIMESTAMP)
#include "timestamp.h"
#endif

#if defined (MODULE_INCLUDE_SAMPLE)
#include "sample.h"
#endif

#if defined (MODULE_INCLUDE_FACTORY)
// #define MODULE_INCLUDE_POWER
// #define MODULE_INCLUDE_PINCTL
#include "ctrlMapHostFactoryTest.h"
#include "factory_data.h"
#endif

#if defined (MODULE_INCLUDE_POWERCTRL)
#include "powerOnByPush.h"
#include "powerProc.h"
#endif

#if defined (MODULE_INCLUDE_ACU)
#include "acu_config.h"
#include "upperInterface.h"
#include "ctrlMapMower.h"
#endif

#if defined (MODULE_INCLUDE_BOARDID)
#include "board_id.h"
#endif

#if defined (MODULE_INCLUDE_FLASH)
#include "flashUser.h"
#include "commDataIap.h"
#endif

#if defined (MODULE_INCLUDE_OLED)
#include "oled.h"
#endif

#if defined (MODULE_INCLUDE_KEY)
#include "key.h"
#endif

#if defined (MODULE_INCLUDE_SECRET)
#include "nb_bin_decrypt.h"
#include "amMd5.h"
#endif

#if defined (MODULE_INCLUDE_USER_CRC)
#include "userCrc16.h"
#endif

#ifdef __cplusplus
}
#endif

#endif